Skip to content

Conversation

nisargjhaveri
Copy link

Add support for the SSD1677 EPD driver chip with support for up to 960x680 pixel displays.

Tested with the Waveshare 4.26" 800x480 display with XIAO BLE board. I believe it is the same as Good Display GDEQ0426T82. Tested with the samples/drivers/display sample.

The SSD1677 requires x address to be full address, instead of the byte address used by SSD16XX. Added a new quirk to handle this.

The display requires a different GDO control flag as the panel layout might be different, add an option to set this.

The display also requires the scan direction for y axis to be reversed, add an option to set this as well.

Example devicetree overlay for the display:

&spi2 {
    cs-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
};

/ {
    chosen {
        zephyr,display = &ssd1677;
    };

    mipi_dbi {
        compatible = "zephyr,mipi-dbi-spi";
        spi-dev = <&spi2>;
        dc-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
        reset-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
        #address-cells = <1>;
        #size-cells = <0>;

        ssd1677: ssd1677@0 {
            compatible = "solomon,ssd1677";
            mipi-max-frequency = <4000000>;
            reg = <0>;
            busy-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;

            width = <480>;
            height = <800>;

            tssv = <0x80>;
            softstart = [AE C7 C3 C0 80];
            gdo-flags = <0x02>;
            scan-y-reverse;

            full {
                border-waveform = <0x01>;
            };

            partial {
                border-waveform = <0x80>;
            };
        };
    };
};

Supersedes #75403

Copy link

Copy link
Contributor

@VynDragon VynDragon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems I also forgot here, you need to add a build test in tests/drivers/build_all/display/app.yaml for the associated binding in a second commit.

@zephyrbot zephyrbot added area: Boards/SoCs area: Devicetree Bindings area: Tests Issues related to a particular existing or missing test labels Oct 7, 2025
@zephyrbot zephyrbot requested a review from nashif October 7, 2025 13:43
@VynDragon
Copy link
Contributor

VynDragon commented Oct 7, 2025

Commit should be area frist so tests: build_all: display: or similar here

@nashif nashif removed their assignment Oct 7, 2025
@VynDragon VynDragon self-requested a review October 7, 2025 15:11
Add support for the SSD1677 EPD driver chip with support for up to
960x680 pixel displays.

Tested with the Waveshare 4.26" 800x480 display with XIAO BLE board.
I believe it is the same as Good Display GDEQ0426T82.
Tested with the samples/drivers/display sample.

The SSD1677 requires x address to be full address, instead of the byte
address used by SSD16XX. Added a new quirk to handle this.

The display requires a different GDO control flag as the panel layout
might be different, add an option to set this.

The display also requires the scan direction for y axis to be reversed,
add an option to set this as well.

Signed-off-by: Nisarg Jhaveri <[email protected]>
Add tests for new display bindings added in ssd16xx display driver.

Signed-off-by: Nisarg Jhaveri <[email protected]>
Copy link

sonarqubecloud bot commented Oct 8, 2025

@VynDragon VynDragon self-requested a review October 8, 2025 11:14
@nashif nashif removed their assignment Oct 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: Boards/SoCs area: Devicetree Bindings area: Display area: Tests Issues related to a particular existing or missing test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants